﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class РасширеннаяАналитикаУчета
	{
		// Функция получает счет расходов бухгалтерского учета, соответствующий счету расходов
		// по налоговому учету.
		//
		// Параметры:
		//	СчетУчетаНУ - ПланСчетовСсылка.Налоговый - Счет учета затрат по налоговому учету
		//  ТаблицаСоответствияСчетовНУиБУ - кэш соответствия счетов, готовится самой функцией
		//
		// Возвращаемое значение:
		//	ПланСчетов.Хозрасчетный - Счет расходов по бухгалтерскому учету
		//

		public object ПолучитьСчетБУПоСчетуНУ(/*
	СчетУчетаНУ,
	ТаблицаСоответствияСчетовНУиБУ = Неопределено
	*/)
		{
			//СчетУчета = ПланыСчетов.Хозрасчетный.ПустаяСсылка();
			if(true/*ЗначениеЗаполнено(СчетУчетаНУ) 
	    И ТипЗнч(СчетУчетаНУ) = Тип("ПланСчетовСсылка.Налоговый")*/)
			{
				if(true/*СчетУчетаНУ.ПринадлежитЭлементу(ПланыСчетов.Налоговый.ОсновноеПроизводство)*/)
				{
					//СчетУчета = ПланыСчетов.Хозрасчетный.ОсновноеПроизводствоНеОблагаемоеЕНВД;
				}
			}
			if(true/*(НЕ ЗначениеЗаполнено(СчетУчета))
	  И ТаблицаСоответствияСчетовНУиБУ <> Неопределено*/)
			{
				//СтрокаТаблицы = ТаблицаСоответствияСчетовНУиБУ.Найти(СчетУчетаНУ, "СчетНУ");
				if(true/*СтрокаТаблицы <> Неопределено*/)
				{
					//СчетУчета = СтрокаТаблицы.СчетБУ;
				}
			}
			return null;
		}
		// ПолучитьСчетБУПоСчетуНУ()
		// Функция формирует запрос по измерениям регистра сведений,
		// соответствующего ключу аналитики.
		//
		// Параметры:
		//	СправочникСсылка - СправочникСсылка - Ключ аналитики
		//
		// Возвращаемое значение:
		//	РезультатЗапроса - Результат запроса по регистру сведений
		//

		public object СформироватьЗапросПоЗначениямАналитики(/*СправочникСсылка*/)
		{
			//Соответствие = Новый Соответствие;
			//Соответствие.Вставить(Тип("СправочникСсылка.КлючиАналитикиВидаУчета"), "АналитикаВидаУчета");
			//Соответствие.Вставить(Тип("СправочникСсылка.КлючиАналитикиРаспределенияЗатрат"), "АналитикаРаспределенияЗатрат");
			//Соответствие.Вставить(Тип("СправочникСсылка.КлючиАналитикиУчетаЗатрат"), "АналитикаУчетаЗатрат");
			//Соответствие.Вставить(Тип("СправочникСсылка.КлючиАналитикиУчетаПартий"), "АналитикаУчетаПартий");
			//Соответствие.Вставить(Тип("СправочникСсылка.КлючиАналитикиУчетаПрочихЗатрат"), "АналитикаУчетаПрочихЗатрат");
			//Запрос = Новый Запрос;
			//Элемент = Соответствие.Получить(ТипЗнч(СправочникСсылка));
			if(true/*Элемент <> Неопределено*/)
			{
				//ИмяРегистра = Элемент;
				/*ТекстЗапроса = "
		|ВЫБРАТЬ
		|	*
		|ИЗ
		|	РегистрСведений.%ИмяРегистра% КАК Аналитика
		|ГДЕ
		|	Аналитика.Ссылка = &Ссылка
		|";*/
				//Запрос.Текст = СтрЗаменить(ТекстЗапроса, "%ИмяРегистра%", Элемент);
				//Запрос.УстановитьПараметр("Ссылка", СправочникСсылка);
			}
			//РезультатЗапроса = Запрос.Выполнить();
			return null;
		}
		// СформироватьЗапросПоЗначениямАналитики()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ ПОЛУЧЕНИЯ (ФОРМИРОВАНИЯ) ЗНАЧЕНИЯ КЛЮЧА АНАЛИТИКИ
		// Процедура определяет используемые измерения расширенной аналитики
		//
		// Параметры:
		//	СтруктураИзмерений - структура, содержит перечень измерений, которые нужно проверить,
		//	УправленческийУчет - булево, если ИСТИНА то проверяется упр. учет, иначе регл.
		//

		public void ПолучитьИспользуемыеИзмерения(/*СтруктураИзмерений, УправленческийУчет = Ложь*/)
		{
			//Запрос = Новый Запрос("");
			if(true/*УправленческийУчет*/)
			{
				/*Запрос.Текст = "ВЫБРАТЬ
			|	НастройкиАналитикиУчета.Код КАК Код,
			|	НастройкиАналитикиУчета.УправленческийУчет КАК Включен
			|ИЗ Справочник.НастройкиАналитикиУчета КАК НастройкиАналитикиУчета
			|ГДЕ
			|	НастройкиАналитикиУчета.Код В (&МассивИзмерений)";*/
			}
			//МассивИзмерений = Новый Массив();
			//Запрос.УстановитьПараметр("МассивИзмерений",МассивИзмерений);
			//Результат = Запрос.Выполнить();
			if(true/*Результат.Пустой()*/)
			{
			}
			//Выборка = Результат.Выбрать();
			while(true/*Выборка.Следующий()*/)
			{
				//СтруктураИзмерений[СокрЛП(Выборка.Код)] = Выборка.Включен;
			}
			//;;
		}
		// Процедура заполнения настроек аналитики по шаблону.
		//
		// Параметры:
		//	РежимИспользованияРасширеннойАналитики - ПеречислениеСсылка.РежимыИспользованияРасширеннойАналитики - Режим использования
		//

		public void ЗаполнитьНастройкиАналитикиПоШаблону(/*
	РежимИспользованияРасширеннойАналитики = Неопределено
	*/)
		{
			if(true/*РежимИспользованияРасширеннойАналитики = Неопределено*/)
			{
				//РежимИспользованияРасширеннойАналитики = глЗначениеПеременной("РежимИспользованияРасширеннойАналитикиУчетаНоменклатурыИЗатрат");
			}
			//ДопАналитикаРеглУчет = (РежимИспользованияРасширеннойАналитики = Перечисления.РежимыИспользованияРасширеннойАналитики.РегламентированныйУчетСДополнительнойАналитикой);
			//МакетНастройки = Справочники.НастройкиАналитикиУчета.ПолучитьМакет("НастройкиУчета");
			//КоличествоСтрок = МакетНастройки.ВысотаТаблицы;
		}
		// ЗаполнитьНастройкиАналитикиПоШаблону()
		// Функция получает массив элементов с признаком "ТолькоПросмотр".
		//
		// Возвращаемое значение:
		//	Массив - Массив элементов
		//

		public object ПолучитьМассивНастроекРАТолькоПросмотр(/**/)
		{
			/*ТекстЗапроса = "
	|ВЫБРАТЬ
	|	НастройкиАналитикиУчета.Ссылка КАК Ссылка,
	|	НастройкиАналитикиУчета.ТолькоПросмотр КАК ТолькоПросмотр,
	|	НастройкиАналитикиУчета.ТолькоПросмотрРегл КАК ТолькоПросмотрРегл
	|ИЗ
	|	Справочник.НастройкиАналитикиУчета КАК НастройкиАналитикиУчета
	|ГДЕ
	|	НастройкиАналитикиУчета.ТолькоПросмотр
	|	ИЛИ НастройкиАналитикиУчета.ТолькоПросмотрРегл
	|
	|";*/
			//Запрос = Новый Запрос;
			//Запрос.Текст = ТекстЗапроса;
			return null;
		}
		// ПолучитьМассивНастроекРАТолькоПросмотр()
		// Функция проверяет заполнение настроек аналитики учета.
		//
		// Возвращаемое значение:
		//	Булево - признак заполненности настроек аналитики
		//

		public object ЗаполненыНастройкиАналитикиУчета(/**/)
		{
			/*ТекстЗапроса = "
	|ВЫБРАТЬ ПЕРВЫЕ 1
	|	НастройкиАналитикиУчета.Код
	|ИЗ
	|	Справочник.НастройкиАналитикиУчета КАК НастройкиАналитикиУчета
	|ГДЕ
	|	НастройкиАналитикиУчета.УправленческийУчет
	|	ИЛИ НастройкиАналитикиУчета.РегламентированныйУчет
	|
	|";*/
			//Запрос = Новый Запрос;
			//Запрос.Текст = ТекстЗапроса;
			//РезультатЗапроса = Запрос.Выполнить();
			return null;
		}
		// ЗаполненыНастройкиАналитикиУчета()
		// Функция формирует шаблон измерений ключа аналитики учета прочих затрат.
		//
		// Параметры:
		//	ИмяРегистра - Строка - Имя регистра
		//
		// Возвращаемое значение:
		//	ТаблицаЗначений - Шаблон измерений
		//

		public object ШаблонИзмеренийИзМакета(/*ИмяРегистра*/)
		{
			//ШаблонИзмерений = Новый ТаблицаЗначений;
			//Колонки = ШаблонИзмерений.Колонки;
			//Колонки.Добавить("Измерение");
			//Колонки.Добавить("Значение");
			//Колонки.Добавить("УпрУчет");
			//Колонки.Добавить("РеглУчет");
			//Индексы = ШаблонИзмерений.Индексы;
			//Индексы.Добавить("УпрУчет");
			//Индексы.Добавить("РеглУчет");
			//МакетНастройки = РегистрыСведений[ИмяРегистра].ПолучитьМакет("НастройкиУчета");
			//КоличествоСтрок = МакетНастройки.ВысотаТаблицы;
			return null;
		}
		// ШаблонИзмеренийИзМакета()
		// Функция формирует шаблон измерений ключа аналитики.
		//
		// Параметры:
		//	ИмяРегистра - Строка - Имя регистра сведений - ключа аналитики
		//	СтруктураКлючиАналитики - Структура - Структура с таблицами ключей аналитики для кэширования данных
		//
		// Возвращаемое значение:
		//	ТаблицаЗначений - Шаблон измерений
		//

		public object ШаблонИзмеренийКлючаАналитики(/*
	ИмяРегистра,
	СтруктураКлючиАналитики
	*/)
		{
			//ИмяСтруктурыИзмерений = "Шаблон" + ИмяРегистра;
			if(true/*СтруктураКлючиАналитики = Неопределено
	 ИЛИ Не СтруктураКлючиАналитики.Свойство(ИмяСтруктурыИзмерений, ШаблонИзмерений)*/)
			{
				if(true/*Не ЗаполненыНастройкиАналитикиУчета()*/)
				{
					//ЗаполнитьНастройкиАналитикиПоШаблону();
				}
				if(true/*ИмяРегистра = "АналитикаУчетаПрочихЗатрат"*/)
				{
					//ШаблонИзмерений = ШаблонИзмеренийИзМакета(ИмяРегистра);
				}
				//Индексы = ШаблонИзмерений.Индексы;
				//Индексы.Добавить("УпрУчет");
				//Индексы.Добавить("РеглУчет");
				if(true/*СтруктураКлючиАналитики <> Неопределено*/)
				{
					//СтруктураКлючиАналитики.Вставить(ИмяСтруктурыИзмерений, ШаблонИзмерений);
				}
			}
			return null;
		}
		// ШаблонИзмеренийКлючаАналитики()
		// Процедура формирует структуру для получения ключа аналитики "Аналитика вида учета".
		//
		// Параметры:
		//	СтруктураШапкиДокумента - Структура - Реквизиты документа
		//	ВидОтраженияВУчете - ПеречислениеСсылка.ВидыОтраженияВУчете - Вид отражения в учете
		//	СтруктураИзмерений - Структура - Структура измерений ключа аналитики
		//

		public void СкорректироватьЗначенияКлючаАналитикиВидаУчета(/*
	СтруктураШапкиДокумента,
	ВидОтраженияВУчете,
	СтруктураИзмерений
	*/)
		{
			/*// Подразделение организации должно указываться в свойстве "ПодразделениеОрганизации".
*/
			if(true/*СтруктураИзмерений.Свойство("Подразделение")
	   И ТипЗнч(СтруктураИзмерений.Подразделение) = Тип("СправочникСсылка.ПодразделенияОрганизаций")*/)
			{
				//СтруктураИзмерений.ПодразделениеОрганизации = СтруктураИзмерений.Подразделение;
				//СтруктураИзмерений.Подразделение = Справочники.Подразделения.ПустаяСсылка();
			}
			/*// Определим, требуется ли заполнять счет налогового учета
*/
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете*/)
			{
				//ОтражатьВНалоговомУчете = Ложь;
			}
			/*// Счет налогового учета должен указываться в свойстве "СчетУчетаНУ".
*/
			if(true/*ВидОтраженияВУчете <> Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете
	   И СтруктураИзмерений.Свойство("СчетУчета")
	   И ТипЗнч(СтруктураИзмерений.СчетУчета) = Тип("ПланСчетовСсылка.Налоговый")*/)
			{
				//СтруктураИзмерений.СчетУчетаНУ = СтруктураИзмерений.СчетУчета;
				//СтруктураИзмерений.СчетУчета = ПолучитьСчетУчетаБУ(СтруктураИзмерений.СчетУчетаНУ);
			}
			/*// Если не указан счет бухгалтерского учета, подберем соответствующий счет.
*/
			if(true/*ВидОтраженияВУчете <> Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете
	   И СтруктураИзмерений.Свойство("СчетУчета")
	   И СтруктураИзмерений.Свойство("СчетУчетаНУ")
	   И Не ЗначениеЗаполнено(СтруктураИзмерений.СчетУчета)
	   И ЗначениеЗаполнено(СтруктураИзмерений.СчетУчетаНУ)*/)
			{
				//СтруктураИзмерений.СчетУчета = ПолучитьСчетУчетаБУ(СтруктураИзмерений.СчетУчетаНУ);
			}
			/*// Если не указан счет налогового учета, подберем соответствующий счет.
*/
			if(true/*ВидОтраженияВУчете <> Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете
	   И ОтражатьВНалоговомУчете
	   И СтруктураИзмерений.Свойство("СчетУчета")
	   И СтруктураИзмерений.Свойство("СчетУчетаНУ")
	   И ЗначениеЗаполнено(СтруктураИзмерений.СчетУчета)
	   И Не ЗначениеЗаполнено(СтруктураИзмерений.СчетУчетаНУ)*/)
			{
				//СтруктураИзмерений.СчетУчетаНУ = ПолучитьСчетУчетаНУ(СтруктураИзмерений.СчетУчета);
			}
			/*// Очистим счет налогового учета, если документ не отражается в налоговом учете.
*/
			if(true/*ВидОтраженияВУчете <> Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете
	   И Не ОтражатьВНалоговомУчете
	   И СтруктураИзмерений.Свойство("СчетУчетаНУ")*/)
			{
				//СтруктураИзмерений.СчетУчетаНУ = ПланыСчетов.Налоговый.ПустаяСсылка();
			}
		}
		// СкорректироватьЗначенияКлючаАналитикиВидаУчета()
		// Процедура формирует структуру для получения ключа аналитики "Аналитика учета затрат".
		//
		// Параметры:
		//	СтруктураИзмерений - Структура - Структура измерений ключа аналитики
		//

		public void СкорректироватьЗначенияКлючаАналитикиУчетаЗатрат(/*
	СтруктураИзмерений
	*/)
		{
			/*ВидЗатрат = ?(СтруктураИзмерений.Свойство("СтатьяЗатрат") И ЗначениеЗаполнено(СтруктураИзмерений.СтатьяЗатрат),
		СтруктураИзмерений.СтатьяЗатрат.ВидЗатрат,
		Перечисления.ВидыЗатрат.Материальные);*/
			if(true/*СтруктураИзмерений.УчетЗатратПоНоменклатуре = Неопределено
	   И СтруктураИзмерений.Свойство("ХарактерЗатрат")
	   И Не УчитыватьЗатратыПоНоменклатуре(СтруктураИзмерений.ХарактерЗатрат, ВидЗатрат)*/)
			{
				if(true/*СтруктураИзмерений.Свойство("Затрата")*/)
				{
					//СтруктураИзмерений.Затрата = Справочники.Номенклатура.ПустаяСсылка();
				}
				if(true/*СтруктураИзмерений.Свойство("ХарактеристикаЗатраты")*/)
				{
					//СтруктураИзмерений.ХарактеристикаЗатраты = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();
				}
				if(true/*СтруктураИзмерений.Свойство("СерияЗатраты")*/)
				{
					//СтруктураИзмерений.СерияЗатраты = Справочники.СерииНоменклатуры.ПустаяСсылка();
				}
			}
		}
		// СкорректироватьЗначенияКлючаАналитикиУчетаЗатрат()
		// Процедура формирует структуру для получения ключа аналитики "Аналитика учета партий".
		//
		// Параметры:
		//	СтруктураИзмерений - Структура - Структура измерений ключа аналитики
		//

		public void СкорректироватьЗначенияКлючаАналитикиУчетаПартий(/*
	СтруктураИзмерений
	*/)
		{
			if(true/*СтруктураИзмерений.Свойство("Заказ")
	   И Не ЗначениеЗаполнено(СтруктураИзмерений.Заказ)*/)
			{
				//СтруктураИзмерений.Заказ = Неопределено;
			}
			if(true/*СтруктураИзмерений.Свойство("СтатусПартии")*/)
			{
				if(true/*СтруктураИзмерений.СтатусПартии = Перечисления.СтатусыПартийТоваров.Продукция
		  ИЛИ СтруктураИзмерений.СтатусПартии = Перечисления.СтатусыПартийТоваров.КупленныйОтложеннаяОтгрузка
		  ИЛИ СтруктураИзмерений.СтатусПартии = Перечисления.СтатусыПартийТоваров.Оборудование*/)
				{
					//СтруктураИзмерений.СтатусПартии = Перечисления.СтатусыПартийТоваров.Купленный;
				}
			}
		}
		// СкорректироватьЗначенияКлючаАналитикиУчетаПартий()
		// Функция формирует структуру для получения ключа аналитики.
		//
		// Параметры:
		//	СтруктураШапкиДокумента - Структура - Реквизиты документа
		//	КлючАналитики - ПеречислениеСсылка.КлючиАналитики - Идентификатор ключа аналитики
		//	ПараметрыАналитики - Коллекция - Коллекция параметров для получения ключа
		//		(Структура, Выборка из результата запроса, Строка табличной части и т.п.)
		//	ШаблонИзмерений - ТаблицаЗначений - Шаблон измерений ключа аналитики
		//	ВидОтраженияВУчете - ПеречислениеСсылка.ВидыОтраженияВУчете - Вид отражения в учете
		//	МассивИзмерений - Массив - Массив измерений ключа аналитики
		//
		// Возвращаемое значение:
		//	Структура - Структура измерений ключа аналитики
		//

		public object СтруктураИзмеренийКлючаАналитики(/*
	СтруктураШапкиДокумента,
	КлючАналитики,
	ПараметрыАналитики,
	ШаблонИзмерений,
	ВидОтраженияВУчете,
	МассивИзмерений
	*/)
		{
			//СтруктураИзмерений = Новый Структура;
			//СтруктураИзмерений.Вставить("УчетЗатратПоНоменклатуре");
			//ЗаполнитьЗначенияСвойств(СтруктураИзмерений, ПараметрыАналитики);
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете*/)
			{
				//СтруктураОтбора = Новый Структура("УпрУчет", Ложь);
			}
			/*// Очистим значения в соответствии с видом учета.
*/
			//Массив = ШаблонИзмерений.НайтиСтроки(СтруктураОтбора);
			if(true/*Массив.Количество() > 0*/)
			{
			}
			if(true/*КлючАналитики = Перечисления.КлючиАналитики.АналитикаВидаУчета*/)
			{
				/*СкорректироватьЗначенияКлючаАналитикиВидаУчета(
			СтруктураШапкиДокумента,
			ВидОтраженияВУчете,
			СтруктураИзмерений
		);*/
			}
			return null;
		}
		// СтруктураИзмеренийКлючаАналитики()
		////////////////////////////////////////////////////////////////////////////////
		// Функция определяет учет затрат по номенклатуре.
		//
		// Параметры:
		//	ХарактерЗатрат - ПеречислениеСсылка.ХарактерЗатрат - Характер затрат
		//	ВидЗатрат - ПеречислениеСсылка.ВидыЗатрат - Вид затрат
		//
		// Возвращаемое значение:
		//	Булево - Истина - Затраты учитываются по номенклатуре
		//			 Ложь - Затраты не учитываются по номенклатуре
		//

		public object УчитыватьЗатратыПоНоменклатуре(/*
	ХарактерЗатрат,
	ВидЗатрат
	*/)
		{
			if(true/*(Не ЗначениеЗаполнено(ХарактерЗатрат)
	 		ИЛИ ХарактерЗатрат = Перечисления.ХарактерЗатрат.ПроизводственныеРасходы
	 		ИЛИ ХарактерЗатрат = Перечисления.ХарактерЗатрат.ЗаготовлениеИПриобретениеМЦ)
	   И (Не ЗначениеЗаполнено(ВидЗатрат)
	 		ИЛИ ВидЗатрат = Перечисления.ВидыЗатрат.Материальные)*/)
			{
			}
			return null;
		}
		// УчитыватьЗатратыПоНоменклатуре()
		// Функция формирует строку наименования ключа аналитики.
		//
		// Параметры:
		//	МассивИзмерений - Массив - Массив измерений ключа аналитики
		//	МенеджерЗаписи - РегистрСведенийМенеджерЗаписи - Запись регистра сведений
		//
		// Возвращаемое значение:
		//	Строка - Полное наименование ключа аналитики
		//

		public object ПолучитьПолноеНаименованиеКлючаАналитики(/*
	МассивИзмерений,
	МенеджерЗаписи
	*/)
		{
			//Наименование = "";
			if(true/*Прав(Наименование, 2) = "; "*/)
			{
				//Наименование = Лев(Наименование, СтрДлина(Наименование) - 2);
			}
			return null;
		}
		// ПолучитьПолноеНаименованиеКлючаАналитики()
		// Функция получает ключ аналитики из таблицы значений (кэша).
		//
		// Параметры:
		//	СтруктураИзмерений - Структура - Структура значений измерений ключа аналитики
		//	ИмяКлючаАналитики - Строка - Имя ключа аналитики
		//	СтруктураКлючиАналитики - Структура - Структура с таблицами ключей аналитики для кэширования данных
		//
		// Возвращаемое значение:
		//	СправочникСсылка - Значение ключа аналитики
		//

		public object ПолучитьКлючАналитикиИзТаблицы(/*
	СтруктураИзмерений,
	ИмяКлючаАналитики,
	СтруктураКлючиАналитики
	*/)
		{
			//ТаблицаКлючаАналитики = Неопределено;
			//ЭлементКлючАналитики = Неопределено;
			if(true/*СтруктураКлючиАналитики.Свойство(ИмяКлючаАналитики, ТаблицаКлючаАналитики)*/)
			{
				//МассивСтрок = ТаблицаКлючаАналитики.НайтиСтроки(СтруктураИзмерений);
				if(true/*МассивСтрок.Количество() > 0*/)
				{
					//ЭлементКлючАналитики = МассивСтрок[0].КлючАналитики;
				}
			}
			return null;
		}
		// ПолучитьКлючАналитикиИзТаблицы()
		// Процедура добавляет ключ аналитики в таблицу значений (для кэширования)
		//
		// Параметры:
		//	СтруктураИзмерений - Структура - Структура значений измерений ключа аналитики
		//	ИмяКлючаАналитики - Строка - Имя ключа аналитики
		//	ЭлементКлючАналитики - СправочникСсылка - Элемент справочника - ключа аналитики
		//	СтруктураКлючиАналитики - Структура - Структура с таблицами ключей аналитики для кэширования данных
		//

		public void ДобавитьКлючАналитикиВТаблицу(/*
	СтруктураИзмерений,
	ИмяКлючаАналитики,
	ЭлементКлючАналитики,
	СтруктураКлючиАналитики
	*/)
		{
			//ТаблицаКлючаАналитики = Неопределено;
			if(true/*Не СтруктураКлючиАналитики.Свойство(ИмяКлючаАналитики, ТаблицаКлючаАналитики)*/)
			{
				//ТаблицаКлючаАналитики = Новый ТаблицаЗначений;
				//Индекс = "";
				//Индекс = Лев(Индекс, СтрДлина(Индекс) - 1);
				//ТаблицаКлючаАналитики.Индексы.Добавить(Индекс);
				//ТаблицаКлючаАналитики.Колонки.Добавить("КлючАналитики");
			}
			//НоваяСтрока = ТаблицаКлючаАналитики.Добавить();
			//ЗаполнитьЗначенияСвойств(НоваяСтрока, СтруктураИзмерений);
			//НоваяСтрока.КлючАналитики = ЭлементКлючАналитики;
			//СтруктураКлючиАналитики.Вставить(ИмяКлючаАналитики, ТаблицаКлючаАналитики);
		}
		// ДобавитьКлючАналитикиВТаблицу()
		// Функция получает ключ аналитики из регистра сведений или
		// создает новый элемент в случае отсутствия.
		//
		// Параметры:
		//	СтруктураИзмерений - Структура - Структура значений измерений ключа аналитики
		//	МассивИзмерений - Массив - Массив измерений ключа аналитики
		//	ИмяСправочника - Строка - Имя справочника - ключа аналитики
		//	ИмяРегистра - Строка - Имя регистра сведений - ключа аналитики
		//	СтруктураКлючиАналитики - Структура - Структура с таблицами ключей аналитики для кэширования данных
		//
		// Возвращаемое значение:
		//	СправочникСсылка - Значение ключа аналитики
		//

		public object ПолучитьСоздатьКлючАналитики(/*
	СтруктураИзмерений,
	МассивИзмерений,
	ИмяСправочника,
	ИмяРегистра,
	СтруктураКлючиАналитики
	*/)
		{
			//ЭлементКлючАналитики = Неопределено;
			/*// Попробуем получить ключ аналитики из кэша.
*/
			if(true/*СтруктураКлючиАналитики <> Неопределено*/)
			{
				/*ЭлементКлючАналитики = ПолучитьКлючАналитикиИзТаблицы(
			СтруктураИзмерений,
			ИмяРегистра,
			СтруктураКлючиАналитики
		);*/
			}
			if(true/*Не ЗначениеЗаполнено(ЭлементКлючАналитики)*/)
			{
				/*// Возвращаем пустую ссылку на ключ аналитики затрат, если все измерения не заполнены,
*/
				/*// так как такая логика (указывать пустую ссылку) предусмотрена при формировании движений
*/
				/*// в общем модулей УправлениеПроизводствомДвиженияПоРегистрам
*/
				if(true/*ИмяРегистра = "АналитикаУчетаЗатрат"*/)
				{
					//ЕстьЗаполненныеИзмерения = Ложь;
					if(true/*НЕ ЕстьЗаполненныеИзмерения*/)
					{
					}
				}
				//МенеджерЗаписи = РегистрыСведений[ИмяРегистра].СоздатьМенеджерЗаписи();
				//ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтруктураИзмерений);
				//МенеджерЗаписи.Прочитать();
				if(true/*МенеджерЗаписи.Выбран()*/)
				{
					//ЭлементКлючАналитики = МенеджерЗаписи.Ссылка;
				}
				/*// Добавим новый ключ аналитики в кэш.
*/
				if(true/*СтруктураКлючиАналитики <> Неопределено*/)
				{
					/*ДобавитьКлючАналитикиВТаблицу(
				СтруктураИзмерений,
				ИмяРегистра,
				ЭлементКлючАналитики,
				СтруктураКлючиАналитики
			);*/
				}
			}
			if(true/*ЭлементКлючАналитики = Неопределено*/)
			{
				//ЭлементКлючАналитики = Справочники[ИмяСправочника].ПустаяСсылка();
			}
			return null;
		}
		// ПолучитьСоздатьКлючАналитики()
		// Функция получает элемент справочника - ключ аналитики вида учета.
		//
		// Параметры:
		//	СтруктураШапкиДокумента - Структура - Реквизиты документа
		//	ПараметрыАналитики - Коллекция - Коллекция параметров для получения ключа
		//	КлючАналитики - ПеречислениеСсылка.КлючиАналитики - Идентификатор ключа аналитики
		//	ВидОтраженияВУчете - ПеречислениеСсылка.ВидыОтраженияВУчете - Вид отражения в учете
		//	СтруктураКлючиАналитики - Структура - Структура с таблицами ключей аналитики для кэширования данных
		//
		// Возвращаемое значение:
		//	СправочникСсылка - Значение ключа аналитики
		//

		public object ПолучитьЗначениеКлючаАналитики(/*
	СтруктураШапкиДокумента,
	ПараметрыАналитики,
	КлючАналитики,
	ВидОтраженияВУчете,
	СтруктураКлючиАналитики = Неопределено
	*/)
		{
			if(true/*КлючАналитики = Перечисления.КлючиАналитики.АналитикаВидаУчета*/)
			{
				//ИмяСправочника = "КлючиАналитикиВидаУчета";
				//ИмяРегистра = "АналитикаВидаУчета";
			}
			/*ШаблонИзмерений = ШаблонИзмеренийКлючаАналитики(
		ИмяРегистра,
		СтруктураКлючиАналитики
	);*/
			//МассивИзмерений = Новый Массив;
			/*СтруктураИзмерений = СтруктураИзмеренийКлючаАналитики(
		СтруктураШапкиДокумента,
		КлючАналитики,
		ПараметрыАналитики,
		ШаблонИзмерений,
		ВидОтраженияВУчете,
		МассивИзмерений
	);*/
			if(true/*СтруктураИзмерений <> Неопределено*/)
			{
				/*ЭлементКлючАналитики = ПолучитьСоздатьКлючАналитики(
			СтруктураИзмерений,
			МассивИзмерений,
			ИмяСправочника,
			ИмяРегистра,
			СтруктураКлючиАналитики
		);*/
			}
			return null;
		}
		// ПолучитьКлючАналитикиВидаУчета()
		// Функция получает счет расходов бухгалтерского учета, соответствующий счету расходов
		// по налоговому учету.
		//
		// Параметры:
		//	СчетУчетаНУ - ПланСчетовСсылка.Налоговый - Счет учета затрат по налоговому учету
		//
		// Возвращаемое значение:
		//	ПланСчетов.Хозрасчетный - Счет расходов по бухгалтерскому учету
		//

		public object ПолучитьСчетУчетаБУ(/*
	СчетУчетаНУ
	*/)
		{
			if(true/*СчетУчетаНУ = ПланыСчетов.Налоговый.ПрямыеРасходыОсновногоПроизводства*/)
			{
				//СчетУчета = ПланыСчетов.Хозрасчетный.ОсновноеПроизводствоНеОблагаемоеЕНВД;
			}
			return null;
		}
		// ПолучитьСчетУчетаБУ()
		// Функция получает счет прямых расходов налогового учета, соответствующий счету расходов
		// по бухгалтерскому учету.
		//
		// Параметры:
		//	СчетУчета - ПланСчетов.Хозрасчетный - Счет учета расходов по бухгалтерскому учету
		//
		// Возвращаемое значение:
		//	ПланСчетовСсылка.Налоговый - Счет расходов по налоговому учету
		//

		public object ПолучитьСчетУчетаНУ(/*
	СчетУчета
	*/)
		{
			if(true/*СчетУчета = ПланыСчетов.Хозрасчетный.ОсновноеПроизводствоНеОблагаемоеЕНВД*/)
			{
				//СчетУчетаНУ = ПланыСчетов.Налоговый.ПрямыеРасходыОсновногоПроизводства;
			}
			return null;
		}
		// ПолучитьСчетУчетаНУ()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ФОРМИРОВАНИЯ ДВИЖЕНИЙ ПО РЕГИСТРАМ "УЧЕТ ЗАТРАТ"
		// Процедура формирует движения по регистру "Учет затрат"
		//
		// Параметры:
		//	СтруктураШапкиДокумента - Структура - Структура реквизитов документа
		//	АналитикаВидаУчета - СправочникСсылка.АналитикаВидаУчета - Ключ аналитики
		//	АналитикаУчетаЗатрат - СправочникСсылка.АналитикаУчетаЗатрат - Ключ аналитики
		//	АналитикаУчетаПартий - СправочникСсылка.АналитикаУчетаПартий - Ключ аналитики
		//	АналитикаРаспределенияЗатрат - СправочникСсылка.АналитикаРаспределенияЗатрат - Ключ аналитики
		//	КорАналитикаВидаУчета - СправочникСсылка.АналитикаВидаУчета - Ключ аналитики
		//	КорАналитикаУчетаЗатрат - СправочникСсылка.АналитикаУчетаЗатрат - Ключ аналитики
		//	КорАналитикаУчетаПартий - СправочникСсылка.АналитикаУчетаПартий - Ключ аналитики
		//	КорАналитикаРаспределенияЗатрат - СправочникСсылка.АналитикаРаспределенияЗатрат - Ключ аналитики
		//	ВидДвижения - ВидДвиженияНакопления - Вид движения по регистру
		//	КодОперации - ПеречислениеСсылка.КодыОперацийНезавершенноеПроизводство - Код операции
		//	Количество - Число - Количество затрат
		//	Стоимость - Число - Стоимость затрат
		//	КоличествоНУ - Число - Количество затрат
		//	СтоимостьНУ - Число - Стоимость затрат
		//	ПостояннаяРазница - Число - Сумма затрат в части постоянной разницы
		//	НаборЗаписейУчетЗатрат - РегистрНакопленияНаборЗаписей - Набор записей регистра накопления "Учет затрат"
		//	ЗаписыватьДвижения - Булево - Использовать ограничение размера набора записей регистра
		//

		public void СформироватьДвиженияПоРегиструУчетЗатрат(/*
	СтруктураШапкиДокумента,
	АналитикаВидаУчета,
	АналитикаУчетаЗатрат,
	АналитикаУчетаПартий,
	АналитикаРаспределенияЗатрат,
	КорАналитикаВидаУчета,
	КорАналитикаУчетаЗатрат,
	КорАналитикаУчетаПартий,
	КорАналитикаРаспределенияЗатрат,
	ВидДвижения,
	КодОперации,
	Количество,
	Стоимость,
	КоличествоНУ,
	СтоимостьНУ,
	ПостояннаяРазница,
	НаборЗаписейУчетЗатрат,
	ЗаписыватьДвижения = Истина
	*/)
		{
			if(true/*Количество = 0
	   И Стоимость = 0
	   И КоличествоНУ = 0
	   И СтоимостьНУ = 0
	   И ПостояннаяРазница = 0*/)
			{
			}
			/*// Прочие затраты в регистре не должны отражаться.
*/
			if(true/*ТипЗнч(АналитикаВидаУчета) = Тип("СправочникСсылка.КлючиАналитикиУчетаПрочихЗатрат")
	 ИЛИ Не ЗначениеЗаполнено(АналитикаВидаУчета)*/)
			{
			}
			/*// В движениях по регистру "Учет затрат" должны быть заполнены измерения:
*/
			/*//	- АналитикаВидаУчета
*/
			/*//	- АналитикаУчетаЗатрат
*/
			/*//	- АналитикаУчетаПартий
*/
			/*//	- АналитикаРаспределенияЗатрат
*/
			/*//
*/
			/*// Реквизиты:
*/
			/*//	- КодОперации
*/
			/*//	- КорАналитикаВидаУчета
*/
			/*//	- КорАналитикаУчетаЗатрат
*/
			/*//	- КорАналитикаУчетаПартий
*/
			/*//	- КорАналитикаРаспределенияЗатрат
*/
			/*//	- НомерСтрокиСписанныхТоваров
*/
			/*//
*/
			/*// Ресурсы;
*/
			/*//	- Количество
*/
			/*//	- Стоимость
*/
			/*//	- КоличествоНУ
*/
			/*//	- СтоимостьНУ
*/
			/*//	- ПостояннаяРазница
*/
			//НоваяСтрока = НаборЗаписейУчетЗатрат.Добавить();
			//НоваяСтрока.Активность = Истина;
			/*//Для некоторых видов документов движения по регистру могут формироваться датой оплаты а не датой документа
*/
			if(true/*ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ПлатежноеПоручениеВходящее")
		ИЛИ ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ПлатежныйОрдерПоступлениеДенежныхСредств")*/)
			{
				//НоваяСтрока.Период = УправлениеДенежнымиСредствами.ПолучитьДатуДвижений(СтруктураШапкиДокумента.Дата, СтруктураШапкиДокумента.ДатаОплаты);
			}
			//НоваяСтрока.ВидДвижения = ВидДвижения;
			//НоваяСтрока.КодОперации = КодОперации;
			//НоваяСтрока.АналитикаВидаУчета = АналитикаВидаУчета;
			//НоваяСтрока.АналитикаУчетаЗатрат = АналитикаУчетаЗатрат;
			//НоваяСтрока.АналитикаУчетаПартий = АналитикаУчетаПартий;
			//НоваяСтрока.АналитикаРаспределенияЗатрат = АналитикаРаспределенияЗатрат;
			/*// Корр аналитика всегда определяется перед вызовом процедуры формирования движений.
*/
			//НоваяСтрока.КорАналитикаВидаУчета = ?(ЗначениеЗаполнено(КорАналитикаВидаУчета), КорАналитикаВидаУчета, Неопределено);
			//НоваяСтрока.КорАналитикаУчетаЗатрат = КорАналитикаУчетаЗатрат;
			//НоваяСтрока.КорАналитикаРаспределенияЗатрат = КорАналитикаРаспределенияЗатрат;
			//НоваяСтрока.КорАналитикаУчетаПартий = КорАналитикаУчетаПартий;
			//НоваяСтрока.Количество = Количество;
			//НоваяСтрока.Стоимость = Стоимость;
			if(true/*ТипЗнч(НаборЗаписейУчетЗатрат) = Тип("РегистрНакопленияНаборЗаписей.УчетЗатратРегл")*/)
			{
				//НоваяСтрока.КоличествоНУ = КоличествоНУ;
				//НоваяСтрока.СтоимостьНУ = СтоимостьНУ;
				if(true/*СтруктураШапкиДокумента.Свойство("ПоддержкаПБУ18")
		   И Не СтруктураШапкиДокумента.ПоддержкаПБУ18*/)
				{
					//НоваяСтрока.ПостояннаяРазница = 0;
				}
			}
			if(true/*Не ЗаписыватьДвижения*/)
			{
			}
			/*// Проверим есть ли в структуре шапки документа значение размера набора для записи регистров учет затрат.
*/
			/*// Если нет - получим значение из константы и закэшируем в структуре шапки
*/
			if(true/*НЕ СтруктураШапкиДокумента.Свойство("РазмерНабораПриЗаписиРегистровУчетаЗатрат")*/)
			{
				//СтруктураШапкиДокумента.Вставить("РазмерНабораПриЗаписиРегистровУчетаЗатрат", глЗначениеПеременной("РазмерНабораПриЗаписиРегистровУчетаЗатрат"));
			}
			/*// Если количество записей в наборе равно установленному размеру набора для записи - запишем набор
*/
			if(true/*НаборЗаписейУчетЗатрат.Количество() = СтруктураШапкиДокумента.РазмерНабораПриЗаписиРегистровУчетаЗатрат*/)
			{
				//НаборЗаписейУчетЗатрат.Записать(Ложь);
			}
		}
		// СформироватьДвиженияПоРегиструУчетЗатрат()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ФОРМИРОВАНИЯ ДВИЖЕНИЙ ПО ОТРАЖЕНИЮ ЗАТРАТ
		// Процедура формирует движения по регистру "Учет затрат" (отражение затрат) по виду учета.
		//
		// Параметры:
		//  СтруктураШапкиДокумента – Структура - Реквизиты документа
		//	СтрокаВыборки - ВыборкаИзРезультатаЗапроса - Текущая строка выборки
		//	ХарактерЗатрат - ПеречислениеСсылка.ХарактерЗатрат - Характер затрат по управленческому или бухгалтерскому учету
		//	ХарактерЗатратНУ - ПеречислениеСсылка.ХарактерЗатрат - Характер затрат по налоговому учету
		//	Проект - СправочникСсылка.Проекты или СправочникСсылка.ВидыРаспределенияПоПроектам - Проект для учета затрат
		//	КоличествоУпр - Число - Количество затрат
		//	СуммаУпр - Число - Стоимость затрат
		//	ВидОтраженияВУчете - ПеречислениеСсылка.ВидыОтраженияВУчете - Вид отражения в учете
		//	СтруктураКлючиАналитики - Структура - Структура с таблицами ключей аналитики для кэширования данных
		//	СтруктураНаборыЗаписей - Структура - Структура наборов записей регистров
		//

		public void ДвижениеПоРегиструУчетЗатратПоВидуУчета(/*
	СтруктураШапкиДокумента,
	СтрокаВыборки,
	ХарактерЗатрат,
	ХарактерЗатратНУ,
	Проект,
	КоличествоУпр,
	СуммаУпр,
	ВидОтраженияВУчете,
	СтруктураКлючиАналитики,
	СтруктураНаборыЗаписей
	*/)
		{
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете*/)
			{
				//ИмяРегистра = "УчетЗатрат";
			}
			/*ПолученНаборЗаписей = УправлениеЗатратамиДвиженияПоРегистрам.ПолучитьНаборЗаписейРегистра(
		СтруктураШапкиДокумента, 
		ИмяРегистра,
		СтруктураНаборыЗаписей
	);*/
			if(true/*Не ПолученНаборЗаписей*/)
			{
			}
			//АналитикаВидаУчета = Неопределено;
			//АналитикаУчетаЗатрат = Неопределено;
			//АналитикаУчетаПартий = Неопределено;
			//АналитикаРаспределенияЗатрат = Неопределено;
			//УчетЗатратПоНоменклатуре = Истина;
			//УчетЗатратПоПроектам = Ложь;
			/*// КодОперации
*/
			/*ВидОтраженияВУчете,
		СтруктураКлючиАналитики,
		АналитикаВидаУчета,
		АналитикаУчетаЗатрат,
		АналитикаУчетаПартий,
		АналитикаРаспределенияЗатрат,
		УчетЗатратПоНоменклатуре,
		УчетЗатратПоПроектам
	);*/
			//Количество = 0;
			//КоличествоНал = 0;
			//Сумма = 0;
			//СуммаНал = 0;
			//ПостояннаяРазница = 0;
			//КорКоличество = 0;
			//КорКоличествоНал = 0;
			//КорСумма = 0;
			//КорСуммаНал = 0;
			//КорПостояннаяРазница = 0;
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете*/)
			{
				if(true/*СтруктураШапкиДокумента.ОтражатьВУправленческомУчете*/)
				{
					if(true/*ХарактерЗатрат <> Перечисления.ХарактерЗатрат.НеУчитываемыеВУправленческомУчете
			   И ЗначениеЗаполнено(ХарактерЗатрат)*/)
					{
						//Сумма = СуммаУпр;
						//Количество = КоличествоУпр;
					}
					//КорСумма = СуммаУпр;
					//КорКоличество = КоличествоУпр;
				}
			}
			//МассивХарактеровЗатрат = Новый Массив;
			//МассивХарактеровЗатрат.Добавить(Неопределено);
			//МассивХарактеровЗатрат.Добавить(Перечисления.ХарактерЗатрат.ВложенияВоВнеоборотныеАктивы);
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете*/)
			{
				//МассивХарактеровЗатрат.Добавить(Перечисления.ХарактерЗатрат.Прочие);
			}
			if(true/*МассивХарактеровЗатрат.Найти(ХарактерЗатрат) = Неопределено
	 ИЛИ МассивХарактеровЗатрат.Найти(ХарактерЗатратНУ) = Неопределено*/)
			{
				/*// КоличествоНУ
*/
				/*СуммаНал,
			ПостояннаяРазница,
			СтруктураНаборыЗаписей[ИмяРегистра]
		);*/
			}
			if(true/*ЗначениеЗаполнено(СтрокаВыборки.КорАналитикаВидаУчета)*/)
			{
				//КорВидДвижения = ?(СтрокаВыборки.ВидДвижения = ВидДвиженияНакопления.Расход, ВидДвиженияНакопления.Приход, ВидДвиженияНакопления.Расход);
				/*СформироватьДвиженияПоРегиструУчетЗатрат(
			СтруктураШапкиДокумента,
			СтрокаВыборки.КорАналитикаВидаУчета,
			СтрокаВыборки.КорАналитикаУчетаЗатрат,
			СтрокаВыборки.КорАналитикаУчетаПартий,
			СтрокаВыборки.КорАналитикаРаспределенияЗатрат,
			АналитикаВидаУчета,
			АналитикаУчетаЗатрат,
			АналитикаУчетаПартий,
			АналитикаРаспределенияЗатрат,
			КорВидДвижения,
			СтрокаВыборки.КодОперации,
			КорКоличество,
			КорСумма,
			КорКоличествоНал,
			КорСуммаНал,
			КорПостояннаяРазница,
			СтруктураНаборыЗаписей[ИмяРегистра]
		);*/
			}
		}
		// ДвижениеПоРегиструУчетЗатратПоВидуУчета()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ФОРМИРОВАНИЯ ДВИЖЕНИЙ ПО ПОГАШЕНИЮ СТОИМОСТИ СПЕЦОДЕЖДЫ
		// Процедура формирует движения по регистру "Учет затрат" (погашение стоимости) по виду учета.
		//
		// Параметры:
		//  СтруктураШапкиДокумента – Структура - Реквизиты документа
		//	СтрокаВыборки - ВыборкаИзРезультатаЗапроса - Текущая строка выборки
		//	ВидОтраженияВУчете - ПеречислениеСсылка.ВидыОтраженияВУчете - Вид отражения в учете
		//	Стоимость - Число - Погашенная стоимость
		//	ПостояннаяРазница - Число - Погашенная стоимость в части постоянной разницы
		//	СтруктураКлючиАналитики - Структура - Структура с таблицами ключей аналитики для кэширования данных
		//	СтруктураНаборыЗаписей - Структура - Структура наборов записей регистров
		//

		public void ДвижениеПоРегиструУчетЗатратПогашениеСтоимости(/*
	СтруктураШапкиДокумента,
	СтрокаВыборки,
	ВидОтраженияВУчете,
	Стоимость,
	ПостояннаяРазница,
	СтруктураКлючиАналитики,
	СтруктураНаборыЗаписей
	*/)
		{
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете*/)
			{
				//ИмяРегистра = "УчетЗатрат";
			}
			/*ПолученНаборЗаписей = УправлениеЗатратамиДвиженияПоРегистрам.ПолучитьНаборЗаписейРегистра(
		СтруктураШапкиДокумента, 
		ИмяРегистра,
		СтруктураНаборыЗаписей
	);*/
			if(true/*Не ПолученНаборЗаписей*/)
			{
			}
			//СтруктураПараметров = Новый Структура;
			//СтруктураПараметров.Вставить("РазделУчета", Перечисления.РазделыУчета.ПогашеннаяСтоимость);
			//СтруктураПараметров.Вставить("Подразделение", СтрокаВыборки.Подразделение);
			//СтруктураПараметров.Вставить("Организация", СтрокаВыборки.Организация);
			//СтруктураПараметров.Вставить("ПодразделениеОрганизации", СтрокаВыборки.ПодразделениеОрганизации);
			//СтруктураПараметров.Вставить("СчетУчета", СтрокаВыборки.СчетУчета);
			//СтруктураПараметров.Вставить("СчетУчетаНУ", СтрокаВыборки.СчетУчетаНУ);
			/*АналитикаВидаУчета = ПолучитьЗначениеКлючаАналитики(
		СтруктураШапкиДокумента,
		СтруктураПараметров,
		Перечисления.КлючиАналитики.АналитикаВидаУчета,
		ВидОтраженияВУчете,
		СтруктураКлючиАналитики
	);*/
			/*// КорАналитикаВидаУчета,
*/
			/*// КорАналитикаУчетаЗатрат,
*/
			/*// КорАналитикаУчетаПартий,
*/
			/*// КорАналитикаРаспределенияЗатрат,
*/
			/*// Количество
*/
			/*// КоличествоНУ
*/
			/*// СтоимостьНУ,
*/
			/*- ПостояннаяРазница,
		СтруктураНаборыЗаписей[ИмяРегистра]
	);*/
		}
		// ДвижениеПоРегиструУчетЗатратПогашениеСтоимости()
		// Процедура формирует движения по регистру "Учет затрат" (материалы в эксплуатации) по виду учета.
		//
		// Параметры:
		//  СтруктураШапкиДокумента – Структура - Реквизиты документа
		//	СтрокаТаблицыОстатков - СтрокаТаблицыЗначений - Текущая строка таблицы остатков
		//	СтрокаВыборки - ВыборкаИзРезультатаЗапроса - Текущая строка выборки
		//	ВидОтраженияВУчете - ПеречислениеСсылка.ВидыОтраженияВУчете - Вид отражения в учете
		//	Количество - Число - Количество материалов
		//	Стоимость - Число - Стоимость материалов
		//	ПогашеннаяСтоимость - Чисто - Сумма погашенной стоимости
		//	КорректировкаСтоимостиСписания - Число - Сумма корректировки стоимости для операций по фикс. стоимости
		//	КоличествоНУ - Число - Количество материалов по налоговому учету
		//	СтоимостьНУ - Число - Стоимость материалов по налоговому учету
		//	ПостояннаяРазница - Число - Погашенная стоимость в части постоянной разницы
		//	СтруктураКлючиАналитики - Структура - Структура с таблицами ключей аналитики для кэширования данных
		//	СтруктураНаборыЗаписей - Структура - Структура наборов записей регистров
		//

		public void ДвижениеПоРегиструУчетЗатратМатериалыВЭксплуатации(/*
	СтруктураШапкиДокумента,
	СтрокаТаблицыОстатков,
	СтрокаВыборки,
	ВидОтраженияВУчете,
	Количество,
	Стоимость,
	ПогашеннаяСтоимость,
	КорректировкаСтоимостиСписания,
	КоличествоНУ,
	СтоимостьНУ,
	ПостояннаяРазница,
	СтруктураКлючиАналитики,
	СтруктураНаборыЗаписей
	*/)
		{
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете*/)
			{
				//ИмяРегистра = "УчетЗатрат";
			}
			/*ПолученНаборЗаписей = УправлениеЗатратамиДвиженияПоРегистрам.ПолучитьНаборЗаписейРегистра(
		СтруктураШапкиДокумента, 
		ИмяРегистра,
		СтруктураНаборыЗаписей
	);*/
			if(true/*Не ПолученНаборЗаписей*/)
			{
			}
			//МассивКодовОпераций = Новый Массив;
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийПартииМатериаловВЭксплуатации.ПеремещениеВЭксплуатации);
			//МассивКодовОпераций.Добавить(Перечисления.КодыОперацийПартииМатериаловВЭксплуатации.ПеремещениеВЭксплуатацииФикс);
			if(true/*МассивКодовОпераций.Найти(СтрокаВыборки.КодОперации) <> Неопределено*/)
			{
				//СтруктураПараметров = Новый Структура;
				//СтруктураПараметров.Вставить("ФизЛицо", СтрокаВыборки.ФизЛицоПолучатель);
				//СтруктураПараметров.Вставить("НазначениеИспользования", СтрокаВыборки.НазначениеИспользованияПолучатель);
				//СтруктураПараметров.Вставить("ДокументПередачи", СтрокаТаблицыОстатков.ДокументПередачи);
				/*КорАналитикаУчетаПартий = ПолучитьЗначениеКлючаАналитики(
			СтруктураШапкиДокумента,
			СтруктураПараметров,
			Перечисления.КлючиАналитики.АналитикаУчетаПартий,
			ВидОтраженияВУчете,
			СтруктураКлючиАналитики
		);*/
			}
			if(true/*Не ЗначениеЗаполнено(СтрокаВыборки.ДокументПередачи)*/)
			{
				/*// Сторнирование движений без партии.
*/
				/*// СтоимостьНУ,
*/
				/*// ПостояннаяРазница,
*/
				/*СтруктураНаборыЗаписей[ИмяРегистра]
		);*/
				/*// Добавление движений с указаниям партии.
*/
				/*СформироватьДвиженияПоРегиструУчетЗатрат(
			СтруктураШапкиДокумента,
			СтрокаТаблицыОстатков.АналитикаВидаУчета,
			СтрокаТаблицыОстатков.АналитикаУчетаЗатрат,
			СтрокаТаблицыОстатков.АналитикаУчетаПартий,
			СтрокаТаблицыОстатков.АналитикаРаспределенияЗатрат,
			СтрокаВыборки.КорАналитикаВидаУчета,
			СтрокаВыборки.КорАналитикаУчетаЗатрат,
			КорАналитикаУчетаПартий,
			СтрокаВыборки.КорАналитикаРаспределенияЗатрат,
			ВидДвиженияНакопления.Расход,
			СтрокаВыборки.КодОперации,
			Количество,
			Стоимость,
			КоличествоНУ,
			СтоимостьНУ,
			ПостояннаяРазница,
			СтруктураНаборыЗаписей[ИмяРегистра]
		);*/
				/*// СтоимостьНУ,
*/
				/*// ПостояннаяРазница,
*/
				/*СтруктураНаборыЗаписей[ИмяРегистра]
		);*/
				/*// Добавление движений с указаниям партии.
*/
				/*СформироватьДвиженияПоРегиструУчетЗатрат(
			СтруктураШапкиДокумента,
			СтрокаВыборки.КорАналитикаВидаУчета,
			СтрокаВыборки.КорАналитикаУчетаЗатрат,
			КорАналитикаУчетаПартий,
			СтрокаВыборки.КорАналитикаРаспределенияЗатрат,
			СтрокаТаблицыОстатков.АналитикаВидаУчета,
			СтрокаТаблицыОстатков.АналитикаУчетаЗатрат,
			СтрокаТаблицыОстатков.АналитикаУчетаПартий,
			СтрокаТаблицыОстатков.АналитикаРаспределенияЗатрат,
			ВидДвиженияНакопления.Приход,
			СтрокаВыборки.КодОперации,
			Количество,
			Стоимость,
			КоличествоНУ,
			СтоимостьНУ,
			ПостояннаяРазница,
			СтруктураНаборыЗаписей[ИмяРегистра]
		);*/
			}
			if(true/*ПогашеннаяСтоимость <> 0*/)
			{
				if(true/*МассивКодовОпераций.Найти(СтрокаВыборки.КодОперации) <> Неопределено*/)
				{
					//СтруктураПараметров = Новый Структура;
					//СтруктураПараметров.Вставить("РазделУчета", Перечисления.РазделыУчета.ПогашеннаяСтоимость);
					if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете*/)
					{
						//СтруктураПараметров.Вставить("Организация", СтрокаВыборки.Организация);
						//СтруктураПараметров.Вставить("ПодразделениеОрганизации", СтрокаВыборки.ПодразделениеОрганизации);
						//СтруктураПараметров.Вставить("СчетУчета", СтрокаВыборки.СчетЗатрат);
						//СтруктураПараметров.Вставить("СчетУчетаНУ", СтрокаВыборки.СчетЗатратНУ);
					}
					/*КорАналитикаВидаУчета = ПолучитьЗначениеКлючаАналитики(
				СтруктураШапкиДокумента,
				СтруктураПараметров,
				Перечисления.КлючиАналитики.АналитикаВидаУчета,
				ВидОтраженияВУчете,
				СтруктураКлючиАналитики
			);*/
				}
				/*// КорАналитикаВидаУчета
*/
				/*// АналитикаУчетаЗатрат
*/
				/*// АналитикаУчетаПартий
*/
				/*// АналитикаРаспределенияЗатрат
*/
				/*// Количество,
*/
				/*// Количество,
*/
				/*// СтоимостьНУ,
*/
				/*// ПостояннаяРазница,
*/
				/*СтруктураНаборыЗаписей[ИмяРегистра]
		);*/
				/*// КорАналитикаВидаУчета
*/
				/*// АналитикаУчетаЗатрат
*/
				/*// АналитикаУчетаПартий
*/
				/*// АналитикаРаспределенияЗатрат
*/
				/*// Количество,
*/
				/*// Количество,
*/
				/*// СтоимостьНУ,
*/
				/*// ПостояннаяРазница,
*/
				/*СтруктураНаборыЗаписей[ИмяРегистра]
		);*/
				//МассивФиксСтоимость = Новый Массив;
				//МассивФиксСтоимость.Добавить(Перечисления.КодыОперацийПартииМатериаловВЭксплуатации.ВозвратИзЭксплуатацииФикс);
				//МассивФиксСтоимость.Добавить(Перечисления.КодыОперацийПартииМатериаловВЭксплуатации.СписаниеИзЭксплуатацииФикс);
				//МассивФиксСтоимость.Добавить(Перечисления.КодыОперацийПартииМатериаловВЭксплуатации.ПеремещениеВЭксплуатацииФикс);
				if(true/*МассивФиксСтоимость.Найти(СтрокаВыборки.КодОперации) <> Неопределено*/)
				{
					/*// КорАналитикаВидаУчета
*/
					/*// АналитикаУчетаЗатрат
*/
					/*// АналитикаУчетаПартий
*/
					/*// АналитикаРаспределенияЗатрат
*/
					/*// Количество,
*/
					/*// Количество,
*/
					/*// СтоимостьНУ,
*/
					/*// ПостояннаяРазница,
*/
					/*СтруктураНаборыЗаписей[ИмяРегистра]
			);*/
				}
			}
		}
		// ДвижениеПоРегиструУчетЗатратМатериалыВЭксплуатации()
		// Процедура формирует движения по регистру "Учет затрат" (передача материалов в эксплуатацию).
		//
		// Параметры:
		//  СтруктураШапкиДокумента – Структура - Реквизиты документа
		//	СтрокаВыборки - ВыборкаИзРезультатаЗапроса - Текущая строка выборки
		//	СтруктураНаборыЗаписей - Структура - Структура наборов записей регистров
		//

		public void ДвижениеПоРегиструУчетЗатратПередачаВЭксплуатацию(/*
	СтруктураШапкиДокумента,
	СтрокаВыборки,
	СтруктураНаборыЗаписей
	*/)
		{
			//КодОперации = Перечисления.КодыОперацийПартииМатериаловВЭксплуатации.ПередачаМатериаловВЭксплуатацию;
			if(true/*СтруктураШапкиДокумента.ОтражатьВУправленческомУчете*/)
			{
				//ИмяРегистра = "УчетЗатрат";
				/*ПолученНаборЗаписей = УправлениеЗатратамиДвиженияПоРегистрам.ПолучитьНаборЗаписейРегистра(
			СтруктураШапкиДокумента, 
			ИмяРегистра,
			СтруктураНаборыЗаписей
		);*/
				if(true/*Не ПолученНаборЗаписей*/)
				{
				}
				/*// КоличествоНУ,
*/
				/*// СтоимостьНУ,
*/
				/*// ПостояннаяРазница,
*/
				/*СтруктураНаборыЗаписей[ИмяРегистра]
		);*/
				/*// КоличествоНУ,
*/
				/*// СтоимостьНУ,
*/
				/*// ПостояннаяРазница,
*/
				/*СтруктураНаборыЗаписей[ИмяРегистра]
		);*/
			}
			if(true/*СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете*/)
			{
				//ИмяРегистра = "УчетЗатратРегл";
				/*ПолученНаборЗаписей = УправлениеЗатратамиДвиженияПоРегистрам.ПолучитьНаборЗаписейРегистра(
			СтруктураШапкиДокумента, 
			ИмяРегистра,
			СтруктураНаборыЗаписей
		);*/
				if(true/*Не ПолученНаборЗаписей*/)
				{
				}
				if(true/*СтруктураШапкиДокумента.ОтражатьВНалоговомУчете*/)
				{
					//КоличествоНал = СтрокаВыборки.КоличествоНал;
					//СтоимостьНал = СтрокаВыборки.СтоимостьНал;
					//ПостояннаяРазница = СтрокаВыборки.ПостояннаяРазница;
				}
				/*СформироватьДвиженияПоРегиструУчетЗатрат(
			СтруктураШапкиДокумента,
			СтрокаВыборки.АналитикаВидаУчета,
			СтрокаВыборки.АналитикаУчетаЗатрат,
			СтрокаВыборки.АналитикаУчетаПартий,
			СтрокаВыборки.АналитикаРаспределенияЗатрат,
			СтрокаВыборки.КорАналитикаВидаУчета,
			СтрокаВыборки.КорАналитикаУчетаЗатрат,
			СтрокаВыборки.КорАналитикаУчетаПартий,
			СтрокаВыборки.КорАналитикаРаспределенияЗатрат,
			ВидДвиженияНакопления.Расход,
			КодОперации,
			СтрокаВыборки.КоличествоБух,
			СтрокаВыборки.СтоимостьБух,
			КоличествоНал,
			СтоимостьНал,
			ПостояннаяРазница,
			СтруктураНаборыЗаписей[ИмяРегистра]
		);*/
				/*СформироватьДвиженияПоРегиструУчетЗатрат(
			СтруктураШапкиДокумента,
			СтрокаВыборки.КорАналитикаВидаУчета,
			СтрокаВыборки.КорАналитикаУчетаЗатрат,
			СтрокаВыборки.КорАналитикаУчетаПартий,
			СтрокаВыборки.КорАналитикаРаспределенияЗатрат,
			СтрокаВыборки.АналитикаВидаУчета,
			СтрокаВыборки.АналитикаУчетаЗатрат,
			СтрокаВыборки.АналитикаУчетаПартий,
			СтрокаВыборки.АналитикаРаспределенияЗатрат,
			ВидДвиженияНакопления.Приход,
			КодОперации,
			СтрокаВыборки.КоличествоБух,
			СтрокаВыборки.СтоимостьБух,
			КоличествоНал,
			СтоимостьНал,
			ПостояннаяРазница,
			СтруктураНаборыЗаписей[ИмяРегистра]
		);*/
			}
		}
		// ДвижениеПоРегиструУчетЗатратПередачаВЭксплуатацию()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ФОРМИРОВАНИЯ КЛЮЧЕЙ АНАЛИТИКИ ВЫПУСКА ПРОДУКЦИИ И УСЛУГ
		// Функция определяет учет затрат по проектам.
		//
		// Параметры:
		//	ХарактерЗатрат - ПеречислениеСсылка.ХарактерЗатрат - Характер затрат
		//
		// Возвращаемое значение:
		//	Булево - Истина - Затраты учитываются по проектам
		//			 Ложь - Затраты не учитываются по проектам
		//

		public object УчитыватьЗатратыПоПроектам(/*
	ХарактерЗатрат
	*/)
		{
			if(true/*ХарактерЗатрат <> Перечисления.ХарактерЗатрат.ПроизводственныеРасходы
	   И ХарактерЗатрат <> Перечисления.ХарактерЗатрат.БракВПроизводстве*/)
			{
			}
			return null;
		}
		// УчитыватьЗатратыПоПроектам()
		// Процедура получает ключи аналитики отражения затрат.
		//
		// Параметры:
		//	СтруктураШапкиДокумента - Структура - Реквизиты документа
		//	СтрокаВыборки - ВыборкаИзРезультатаЗапроса - Строка выборки из результата запроса
		//	Проект - СправочникСсылка.Проекты или СправочникСсылка.ВидыРаспределенияПоПроектам - Проект для учета затрат
		//	ХарактерЗатрат - ПеречислениеСсылка.ХарактерЗатрат - Характер затрат
		//	ХарактерЗатратНУ - ПеречислениеСсылка.ХарактерЗатрат - Характер затрат для целей налогового учета
		//	КодОперации - ПеречислениеСсылка.КодыОпераций - Код операции
		//	ВидОтраженияВУчете - ПеречислениеСсылка.ВидыОтраженияВУчете - Вид отражения в учете для получения ключа аналитики
		//	СтруктураКлючиАналитики - Структура - Структура с таблицами ключей аналитики для кэширования данных
		//
		// Выходные параметры:
		//	АналитикаВидаУчета - СправочникСсылка.КлючиАналитикиВидаУчета - Ключ аналитики
		//	АналитикаУчетаЗатрат - СправочникСсылка.КлючиАналитикиУчетаЗатрат - Ключ аналитики
		//	АналитикаУчетаПартий - СправочникСсылка.КлючиАналитикиУчетаПартий - Ключ аналитики
		//	АналитикаРаспределенияЗатрат - СправочникСсылка.КлючиАналитикиРаспределенияЗатрат - Ключ аналитики
		//	УчетЗатратПоНоменклатуре - Булево - Признак учета затрат по номенклатуре
		//	УчетЗатратПоПроектам - Булево - Признак учета затрат по проектам
		//

		public void ПолучитьАналитикуОтраженияЗатрат(/*
	СтруктураШапкиДокумента,
	СтрокаВыборки,
	Проект,
	ХарактерЗатрат,
	ХарактерЗатратНУ,
	КодОперации,
	ВидОтраженияВУчете,
	СтруктураКлючиАналитики,
	АналитикаВидаУчета,
	АналитикаУчетаЗатрат,
	АналитикаУчетаПартий,
	АналитикаРаспределенияЗатрат,
	УчетЗатратПоНоменклатуре,
	УчетЗатратПоПроектам
	*/)
		{
			//АналитикаВидаУчета = Неопределено;
			//АналитикаУчетаЗатрат = Неопределено;
			//АналитикаУчетаПартий = Неопределено;
			//АналитикаРаспределенияЗатрат = Неопределено;
			if(true/*ХарактерЗатрат  = Неопределено*/)
			{
				if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВБухгалтерскомУчете
		 ИЛИ ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете*/)
				{
					/*ХарактерЗатрат = УправлениеЗатратами.ПолучитьХарактерЗатратПоСчетуЗатрат(
				СтрокаВыборки.СчетДт, 
				СтрокаВыборки.СтатьяЗатратПолучатель
			);*/
				}
			}
			if(true/*ХарактерЗатрат = Перечисления.ХарактерЗатрат.ВложенияВоВнеоборотныеАктивы
	 	ИЛИ
	 	(Не ЗначениеЗаполнено(ХарактерЗатрат)
		И Не ЗначениеЗаполнено(ХарактерЗатратНУ))*/)
			{
			}
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете
	   И ХарактерЗатрат = Перечисления.ХарактерЗатрат.НеУчитываемыеВУправленческомУчете*/)
			{
			}
			if(true/*ХарактерЗатрат = Перечисления.ХарактерЗатрат.Прочие
	   И (ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВБухгалтерскомУчете
	 ИЛИ ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете)*/)
			{
				//КлючАналитики = Перечисления.КлючиАналитики.АналитикаУчетаПрочихЗатрат;
			}
			/*// Внутренние услуги всегда учитываем по номенклатуре и количеству, не зависимо от характера затрат.
*/
			if(true/*КодОперации = Перечисления.КодыОперацийВыпускПродукции.ВыпускПродукцииФиксВнутрУслугиНаПостЗатраты
	 ИЛИ КодОперации = Перечисления.КодыОперацийВыпускПродукции.ВыпускПродукцииФиксВнутрУслугиНаПроизводство*/)
			{
				//УчетЗатратПоНоменклатуре = Истина;
			}
			if(true/*ХарактерЗатрат = Перечисления.ХарактерЗатрат.ЗаготовлениеИПриобретениеМЦ
	   И ХарактерЗатратНУ = Неопределено*/)
			{
				//ЭтоЗаготовлениеИПриобретениеМЦ = Истина;
			}
			//УчетЗатратПоПроектам = Ложь;
			//СтруктураПараметров = Новый Структура;
			if(true/*КлючАналитики = Перечисления.КлючиАналитики.АналитикаВидаУчета*/)
			{
				//СтруктураПараметров.Вставить("РазделУчета", Перечисления.РазделыУчета.Затраты);
				//СтруктураПараметров.Вставить("Подразделение", СтрокаВыборки.ПодразделениеПолучатель);
				//УчетЗатратПоПроектам = УчитыватьЗатратыПоПроектам(ХарактерЗатрат);
				if(true/*УчетЗатратПоПроектам*/)
				{
					//СтруктураПараметров.Вставить("Проект", Проект);
				}
				//СтруктураПараметров.Вставить("Организация", СтрокаВыборки.Организация);
				if(true/*Не ЭтоЗаготовлениеИПриобретениеМЦ*/)
				{
					//СтруктураПараметров.Вставить("ПодразделениеОрганизации", СтрокаВыборки.ПодразделениеОрганизацииПолучатель);
				}
				if(true/*СтрокаВыборки.СтатусМатериальныхЗатрат = Перечисления.СтатусыМатериальныхЗатратНаПроизводство.ВозвратныеОтходы
		 ИЛИ КодОперации = Перечисления.КодыОперацийНезавершенноеПроизводство.ОтрицательныеЗатраты
		 ИЛИ КодОперации = Перечисления.КодыОперацийЗатратыНаВыпускПродукции.ОтрицательныеЗатраты*/)
				{
					//СтруктураПараметров.Вставить("СчетУчета", СтрокаВыборки.СчетЗатрат);
					//СтруктураПараметров.Вставить("СчетУчетаНУ", СтрокаВыборки.СчетЗатратНУ);
				}
			}
			/*АналитикаВидаУчета = ПолучитьЗначениеКлючаАналитики(
		СтруктураШапкиДокумента,
		СтруктураПараметров,
		КлючАналитики,
		ВидОтраженияВУчете,
		СтруктураКлючиАналитики
	);*/
			/*// Для аналитики учета прочих затрат другие ключи аналитики не заполняются.
*/
			if(true/*КлючАналитики = Перечисления.КлючиАналитики.АналитикаУчетаПрочихЗатрат*/)
			{
			}
			//СтруктураПараметров = Новый Структура;
			//СтруктураПараметров.Вставить("СтатьяЗатрат", СтрокаВыборки.СтатьяЗатратПолучатель);
			if(true/*ХарактерЗатрат = Перечисления.ХарактерЗатрат.ЗаготовлениеИПриобретениеМЦ*/)
			{
				if(true/*ХарактерЗатратНУ = Неопределено*/)
				{
					//СтруктураПараметров.Вставить("ХарактерЗатрат", ХарактерЗатрат);
				}
			}
			if(true/*УчетЗатратПоНоменклатуре*/)
			{
				//СтруктураПараметров.Вставить("УчетЗатратПоНоменклатуре", УчетЗатратПоНоменклатуре);
				//СтруктураПараметров.Вставить("Затрата", СтрокаВыборки.Затрата);
				//СтруктураПараметров.Вставить("ХарактеристикаЗатраты", СтрокаВыборки.ХарактеристикаЗатраты);
				if(true/*СтрокаВыборки.ВестиУчетПоСериямВНЗП*/)
				{
					//СтруктураПараметров.Вставить("СерияЗатраты", СтрокаВыборки.СерияЗатраты);
				}
			}
			/*АналитикаУчетаЗатрат = ПолучитьЗначениеКлючаАналитики(
		СтруктураШапкиДокумента,
		СтруктураПараметров,
		Перечисления.КлючиАналитики.АналитикаУчетаЗатрат,
		ВидОтраженияВУчете,
		СтруктураКлючиАналитики
	);*/
			//СтруктураПараметров = Новый Структура;
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете*/)
			{
				//СтруктураПараметров.Вставить("Заказ", СтрокаВыборки.ЗаказПолучатель);
			}
			/*АналитикаУчетаПартий = ПолучитьЗначениеКлючаАналитики(
		СтруктураШапкиДокумента,
		СтруктураПараметров,
		Перечисления.КлючиАналитики.АналитикаУчетаПартий,
		ВидОтраженияВУчете,
		СтруктураКлючиАналитики
	);*/
			//СтруктураПараметров = Новый Структура;
			if(true/*Не ЭтоЗаготовлениеИПриобретениеМЦ*/)
			{
				//СтруктураПараметров.Вставить("НоменклатурнаяГруппа", СтрокаВыборки.НоменклатурнаяГруппаПолучатель);
				//СтруктураПараметров.Вставить("Продукция", СтрокаВыборки.ПродукцияПолучатель);
				//СтруктураПараметров.Вставить("ХарактеристикаПродукции", СтрокаВыборки.ХарактеристикаПродукцииПолучатель);
				//СтруктураПараметров.Вставить("СерияПродукции", СтрокаВыборки.СерияПродукцииПолучатель);
			}
			/*АналитикаРаспределенияЗатрат = ПолучитьЗначениеКлючаАналитики(
		СтруктураШапкиДокумента,
		СтруктураПараметров,
		Перечисления.КлючиАналитики.АналитикаРаспределенияЗатрат,
		ВидОтраженияВУчете,
		СтруктураКлючиАналитики
	);*/
		}
		// ПолучитьАналитикуОтраженияЗатрат()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ФОРМИРОВАНИЯ ДВИЖЕНИЙ ПО РЕГИСТРУ "УЧЕТ ПРОДАЖ И СЕБЕСТОИМОСТИ"
		// Результат функции определяет поведение программы при выполнении следующих действий:
		// - формирование движений по регистру УчетПродажИСебестоимости
		//		(влияет на способ определения аналитики Заказ в аналитике учета партий)
		// - выполнение операции "Определение списка реализованных услуг" документа РСВ
		//		(влияет на заполнение аналитики Заказ в аналитике учета партий для движений услуг по регистрам учета затрат)
		//

		public object УчитыватьПродажиПоЗаказамПокупателей(/**/)
		{
			return null;
		}
		// Процедура получает ключи аналитики учета продаж.
		//
		// Параметры:
		//	СтруктураШапкиДокумента - Структура - Реквизиты документа
		//	СтрокаВыборки - ВыборкаИзРезультатаЗапроса - Строка выборки из результата запроса
		//	ВидОтраженияВУчете - ПеречислениеСсылка.ВидыОтраженияВУчете - Вид отражения в учете для получения ключа аналитики
		//	СтруктураКлючиАналитики - Структура - Структура с таблицами ключей аналитики для кэширования данных
		//
		// Выходные параметры:
		//	АналитикаВидаУчета - СправочникСсылка.КлючиАналитикиВидаУчета - Ключ аналитики
		//	АналитикаУчетаНоменклатуры - СправочникСсылка.КлючиАналитикиРаспределенияЗатрат - Ключ аналитики
		//	АналитикаУчетаПартий - СправочникСсылка.КлючиАналитикиУчетаПартий - Ключ аналитики
		//

		public void ПолучитьАналитикуУчетаПродаж(/*
	СтруктураШапкиДокумента,
	СтрокаВыборки,
	ВидОтраженияВУчете,
	СтруктураКлючиАналитики,
	АналитикаВидаУчета,
	АналитикаУчетаНоменклатуры,
	АналитикаУчетаПартий
	*/)
		{
			//СтруктураПараметров = Новый Структура;
			if(true/*ЗначениеЗаполнено(СтруктураШапкиДокумента.Проект)*/)
			{
				//СтруктураПараметров.Вставить("Проект", СтруктураШапкиДокумента.Проект);
			}
			//СтруктураПараметров.Вставить("Организация", СтруктураШапкиДокумента.Организация);
			//СтруктураПараметров.Вставить("Подразделение", СтруктураШапкиДокумента.Подразделение);
			if(true/*СтруктураШапкиДокумента.Свойство("ПодразделениеОрганизации")*/)
			{
				//СтруктураПараметров.Вставить("ПодразделениеОрганизации", СтруктураШапкиДокумента.ПодразделениеОрганизации);
			}
			//СтруктураПараметров.Вставить("СчетУчета", СтрокаВыборки.СчетДоходовБУ);
			//СтруктураПараметров.Вставить("СчетУчетаНУ", СтрокаВыборки.СчетДоходовНУ);
			//СтруктураПараметров.Вставить("Субконто1", СтрокаВыборки.СубконтоБУ);
			//СтруктураПараметров.Вставить("СубконтоНУ1", СтрокаВыборки.СубконтоНУ);
			if(true/*ТипЗнч(СтрокаВыборки.СубконтоБУ) = Тип("СправочникСсылка.ПрочиеДоходыИРасходы")*/)
			{
				//КлючАналитики = Перечисления.КлючиАналитики.АналитикаУчетаПрочихЗатрат;
			}
			/*АналитикаВидаУчета = ПолучитьЗначениеКлючаАналитики(
		СтруктураШапкиДокумента,
		СтруктураПараметров,
		КлючАналитики,
		ВидОтраженияВУчете,
		СтруктураКлючиАналитики
	);*/
			//СтруктураПараметров = Новый Структура;
			//СтруктураПараметров.Вставить("НоменклатурнаяГруппа", СтрокаВыборки.СубконтоБУ);
			//СтруктураПараметров.Вставить("Продукция", СтрокаВыборки.Номенклатура);
			//СтруктураПараметров.Вставить("ХарактеристикаПродукции", СтрокаВыборки.ХарактеристикаНоменклатуры);
			//СтруктураПараметров.Вставить("СерияПродукции", СтрокаВыборки.СерияНоменклатуры);
			/*АналитикаУчетаНоменклатуры = ПолучитьЗначениеКлючаАналитики(
		СтруктураШапкиДокумента,
		СтруктураПараметров,
		Перечисления.КлючиАналитики.АналитикаРаспределенияЗатрат,
		ВидОтраженияВУчете,
		СтруктураКлючиАналитики
	);*/
			//СтруктураПараметров = Новый Структура;
			if(true/*УчитыватьПродажиПоЗаказамПокупателей()*/)
			{
				//СтруктураПараметров.Вставить("Заказ", СтрокаВыборки.ЗаказПокупателя);
			}
			//СтруктураПараметров.Вставить("Комиссионер", 		СтруктураШапкиДокумента.Контрагент);
			//СтруктураПараметров.Вставить("ДоговорКомиссионера", СтруктураШапкиДокумента.ДоговорКонтрагента);
			/*АналитикаУчетаПартий = ПолучитьЗначениеКлючаАналитики(
		СтруктураШапкиДокумента,
		СтруктураПараметров,
		Перечисления.КлючиАналитики.АналитикаУчетаПартий,
		ВидОтраженияВУчете,
		СтруктураКлючиАналитики
	);*/
		}
		// ПолучитьАналитикуУчетаПродаж()
		// Процедура формирует движения по регистру "Учет продаж и себестоимости"
		//
		// Параметры:
		//	СтруктураШапкиДокумента - Структура - Структура реквизитов документа
		//	АналитикаВидаУчета - СправочникСсылка.КлючиАналитикиВидаУчета - Ключ аналитики
		//	АналитикаУчетаНоменклатуры - СправочникСсылка.КлючиАналитикиРаспределенияЗатрат - Ключ аналитики
		//	АналитикаУчетаПартий - СправочникСсылка.КлючиАналитикиУчетаПартий - Ключ аналитики
		//	Количество - Число - Количество проданной номенклатуры
		//	Стоимость - Число - Стоимость продажи
		//	НДС - Число - НДС продажи
		//	Себестоимость - Число - Себестоимость продажи
		//	НаборЗаписейУчетПродаж - РегистрНакопленияНаборЗаписей - Набор записей регистра накопления "Учет продаж и себестоимости"
		//

		public void СформироватьДвиженияПоРегиструУчетПродажИСебестоимости(/*
	СтруктураШапкиДокумента,
	АналитикаВидаУчета,
	АналитикаУчетаНоменклатуры,
	АналитикаУчетаПартий,
	Количество,
	Стоимость,
	НДС,
	Себестоимость,
	НаборЗаписейУчетПродаж
	*/)
		{
			if(true/*Количество = 0
	   И Стоимость = 0
	   И НДС = 0
	   И Себестоимость = 0*/)
			{
			}
			/*// В движениях по регистру "Учет продаж и себестоимости" должны быть заполнены измерения:
*/
			/*//	- АналитикаВидаУчета
*/
			/*//	- АналитикаУчетаНоменклатуры
*/
			/*//	- АналитикаУчетаПартий
*/
			/*//
*/
			/*// Ресурсы;
*/
			/*//	- Количество
*/
			/*//	- Стоимость
*/
			/*//	- НДС
*/
			/*//	- Себестоимость
*/
			//НоваяСтрока = НаборЗаписейУчетПродаж.Добавить();
			//НоваяСтрока.Активность = Истина;
			//НоваяСтрока.Период = СтруктураШапкиДокумента.Дата;
			//НоваяСтрока.АналитикаВидаУчета = АналитикаВидаУчета;
			//НоваяСтрока.АналитикаУчетаНоменклатуры = АналитикаУчетаНоменклатуры;
			//НоваяСтрока.АналитикаУчетаПартий = АналитикаУчетаПартий;
			//НоваяСтрока.Количество = Количество;
			//НоваяСтрока.Стоимость = Стоимость;
			//НоваяСтрока.НДС = НДС;
			//НоваяСтрока.Себестоимость = Себестоимость;
			/*// Если в наборе записей 1000 строк, запишем набор.
*/
			if(true/*НаборЗаписейУчетПродаж.Количество() = 1000*/)
			{
				//НаборЗаписейУчетПродаж.Записать(Ложь);
			}
		}
		// СформироватьДвиженияПоРегиструУчетПродажИСебестоимости()
		// Функция формирует структуру колонок для таблицы продаж.
		//
		// Возвращаемое значение:
		//	Структура - Структура колонок
		//

		public object СформироватьСтруктуруКолонокТаблицыПродаж(/**/)
		{
			//СтруктураКолонок = Новый Структура;
			//СтруктураКолонок.Вставить("Организация", Новый ОписаниеТипов("СправочникСсылка.Организации"));
			//СтруктураКолонок.Вставить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
			//СтруктураКолонок.Вставить("ХарактеристикаНоменклатуры", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
			//СтруктураКолонок.Вставить("СерияНоменклатуры", Новый ОписаниеТипов("СправочникСсылка.СерииНоменклатуры"));
			//СтруктураКолонок.Вставить("СубконтоБУ", Новый ОписаниеТипов("СправочникСсылка.НоменклатурныеГруппы"));
			//СтруктураКолонок.Вставить("СубконтоНУ", Новый ОписаниеТипов("СправочникСсылка.НоменклатурныеГруппы"));
			//СтруктураКолонок.Вставить("Подразделение", Новый ОписаниеТипов("СправочникСсылка.Подразделения"));
			//СтруктураКолонок.Вставить("ПодразделениеОрганизации", Новый ОписаниеТипов("СправочникСсылка.ПодразделенияОрганизаций"));
			//МассивТиповЗаказа = Новый Массив;
			//МассивТиповЗаказа.Добавить(Тип("ДокументСсылка.ЗаказПокупателя"));
			if(true/*УчитыватьПродажиПоЗаказамПокупателей()*/)
			{
				//СтруктураКолонок.Вставить("ЗаказПокупателя", Новый ОписаниеТипов(МассивТиповЗаказа));
			}
			//МассивТиповПроекта = Новый Массив;
			//МассивТиповПроекта.Добавить(Тип("СправочникСсылка.Проекты"));
			//МассивТиповПроекта.Добавить(Тип("СправочникСсылка.ВидыРаспределенияПоПроектам"));
			//СтруктураКолонок.Вставить("Проект", Новый ОписаниеТипов(МассивТиповПроекта));
			//СтруктураКолонок.Вставить("Количество", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)));
			//СтруктураКолонок.Вставить("СуммаБезНДС", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
			//СтруктураКолонок.Вставить("НДС", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
			//СтруктураКолонок.Вставить("Себестоимость", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
			//СтруктураКолонок.Вставить("СчетДоходовБУ", Новый ОписаниеТипов("ПланСчетовСсылка.Хозрасчетный"));
			//СтруктураКолонок.Вставить("СчетДоходовНУ", Новый ОписаниеТипов("ПланСчетовСсылка.Налоговый"));
			return null;
		}
		// СформироватьСтруктуруКолонокТаблицыПродаж()
		// Процедура формрует движения по продажам.
		//
		// Параметры:
		//	СтруктураШапкиДокумента - Структура - Реквизиты документа
		//	ТаблицаДокумента - ТаблицаЗначений - Таблица документа
		//

		public void СформироватьДвиженияПоПродажам(/*
	СтруктураШапкиДокумента,
	ТаблицаДокумента
	*/)
		{
			if(true/*Не СтруктураШапкиДокумента.Свойство("ИспользоватьРасширеннуюАналитику")*/)
			{
				/*ИспользоватьРасширеннуюАналитику = глЗначениеПеременной("ИспользоватьРасширеннуюАналитикуУчетаНоменклатурыИЗатрат") 
			И (глЗначениеПеременной("ДатаНачалаИспользованияРасширеннойАналитикиУчетаНоменклатурыИЗатрат") <= СтруктураШапкиДокумента.Дата);*/
				//СтруктураШапкиДокумента.Вставить("ИспользоватьРасширеннуюАналитику", ИспользоватьРасширеннуюАналитику);
			}
			if(true/*Не СтруктураШапкиДокумента.ИспользоватьРасширеннуюАналитику
	 ИЛИ Не СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете*/)
			{
			}
			if(true/*Не СтруктураШапкиДокумента.Свойство("Контрагент")*/)
			{
				//СтруктураШапкиДокумента.Вставить("Контрагент", Неопределено);
			}
			if(true/*Не СтруктураШапкиДокумента.Свойство("ДоговорКонтрагента")*/)
			{
				//СтруктураШапкиДокумента.Вставить("ДоговорКонтрагента", Неопределено);
			}
			if(true/*ТаблицаДокумента.Колонки.Найти("ПринадлежностьНоменклатуры") <> Неопределено*/)
			{
				//ТаблицаПродаж = ТаблицаДокумента.Скопировать(Новый Структура("ПринадлежностьНоменклатуры", Перечисления.ПринадлежностьНоменклатуры.ПустаяСсылка()));
			}
			//СтруктураНаборыЗаписей = Новый Структура;
			/*ПолученНаборЗаписей = УправлениеЗатратамиДвиженияПоРегистрам.ПолучитьНаборЗаписейРегистра(
		СтруктураШапкиДокумента, 
		"УчетПродажИСебестоимости", 
		СтруктураНаборыЗаписей
	);*/
			if(true/*Не ПолученНаборЗаписей*/)
			{
			}
			//СтруктураКолонок = СформироватьСтруктуруКолонокТаблицыПродаж();
			if(true/*ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ВозвратТоваровОтПокупателя")*/)
			{
				//Знак = -1;
			}
			//СтруктураКлючиАналитики = Новый Структура;
			//ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете;
			//УправлениеЗатратамиДвиженияПоРегистрам.ЗаписатьНаборыЗаписейРегистров(СтруктураНаборыЗаписей);
		}
		// СформироватьДвиженияПоПродажам()
		///////////////////////////////////////////////////////////////////////////////////////////
		//ПРОЦЕДУРЫ ОБСЛУЖИВАНИЯ КЛЮЧЕЙ РАСШИРЕННОЙ АНАЛИТИКИ
		// Процедура получает структуру хранения ключей аналитики.
		//
		// Параметры:
		//	нет
		//

		public object ПолучитьСтруктуруКлючей(/**/)
		{
			/*СтруктураКлючей = Новый Структура("АналитикаВидаУчета,
							|АналитикаРаспределенияЗатрат,
							|АналитикаУчетаЗатрат,
							|АналитикаУчетаПартий,
							|АналитикаУчетаПрочихЗатрат",
							"КлючиАналитикиВидаУчета",
							"КлючиАналитикиРаспределенияЗатрат",
							"КлючиАналитикиУчетаЗатрат",
							"КлючиАналитикиУчетаПартий",
							"КлючиАналитикиУчетаПрочихЗатрат");*/
			return null;
		}
		// Удаляет не используемые ключи аналитики.
		//
		// Параметры:
		//	ТолькоТестировать - булево, если необходимо только тестировать без исправления то Истина.
		//

		public void УдалитьКлючиАналитики(/*ТолькоТестировать*/)
		{
			//МассивМетаданныхРегистровКлючей = Новый Массив();
			//МассивМетаданныхРегистровКлючей.Добавить(Метаданные.РегистрыСведений.АналитикаВидаУчета);
			//МассивМетаданныхРегистровКлючей.Добавить(Метаданные.РегистрыСведений.АналитикаРаспределенияЗатрат);
			//МассивМетаданныхРегистровКлючей.Добавить(Метаданные.РегистрыСведений.АналитикаУчетаЗатрат);
			//МассивМетаданныхРегистровКлючей.Добавить(Метаданные.РегистрыСведений.АналитикаУчетаПартий);
			//МассивМетаданныхРегистровКлючей.Добавить(Метаданные.РегистрыСведений.АналитикаУчетаПрочихЗатрат);
			//ТребуетсяПроверкаСсылочнойЦелостности = Ложь;
			//Запрос = Новый Запрос();
			/*Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
	               |	КлючиАналитикиВидаУчета.Ссылка
	               |ИЗ
	               |	Справочник.КлючиАналитикиВидаУчета КАК КлючиАналитикиВидаУчета
	               |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетЗатрат.Обороты КАК УчетЗатратОбороты
	               |		ПО КлючиАналитикиВидаУчета.Ссылка = УчетЗатратОбороты.АналитикаВидаУчета
	               |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетЗатратРегл.Обороты КАК УчетЗатратРеглОбороты
	               |		ПО КлючиАналитикиВидаУчета.Ссылка = УчетЗатратРеглОбороты.АналитикаВидаУчета
	               |ГДЕ
	               |	УчетЗатратОбороты.АналитикаВидаУчета ЕСТЬ NULL 
	               |	И УчетЗатратРеглОбороты.АналитикаВидаУчета ЕСТЬ NULL 
	               |
	               |ОБЪЕДИНИТЬ ВСЕ
	               |
	               |ВЫБРАТЬ РАЗЛИЧНЫЕ
	               |	КлючиАналитикиРаспределенияЗатрат.Ссылка
	               |ИЗ
	               |	Справочник.КлючиАналитикиРаспределенияЗатрат КАК КлючиАналитикиРаспределенияЗатрат
	               |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетЗатрат.Обороты КАК УчетЗатратОбороты
	               |		ПО КлючиАналитикиРаспределенияЗатрат.Ссылка = УчетЗатратОбороты.АналитикаРаспределенияЗатрат
	               |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетЗатратРегл.Обороты КАК УчетЗатратРеглОбороты
	               |		ПО КлючиАналитикиРаспределенияЗатрат.Ссылка = УчетЗатратРеглОбороты.АналитикаРаспределенияЗатрат
	               |ГДЕ
	               |	УчетЗатратОбороты.АналитикаРаспределенияЗатрат ЕСТЬ NULL 
	               |	И УчетЗатратРеглОбороты.АналитикаРаспределенияЗатрат ЕСТЬ NULL
	               |
	               |ОБЪЕДИНИТЬ ВСЕ
	               |
	               |ВЫБРАТЬ РАЗЛИЧНЫЕ
	               |	КлючиАналитикиУчетаЗатрат.Ссылка
	               |ИЗ
	               |	Справочник.КлючиАналитикиУчетаЗатрат КАК КлючиАналитикиУчетаЗатрат
	               |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетЗатрат.Обороты КАК УчетЗатратОбороты
	               |		ПО КлючиАналитикиУчетаЗатрат.Ссылка = УчетЗатратОбороты.АналитикаУчетаЗатрат
	               |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетЗатратРегл.Обороты КАК УчетЗатратРеглОбороты
	               |		ПО КлючиАналитикиУчетаЗатрат.Ссылка = УчетЗатратРеглОбороты.АналитикаУчетаЗатрат
	               |ГДЕ
	               |	УчетЗатратОбороты.АналитикаУчетаЗатрат ЕСТЬ NULL 
	               |	И УчетЗатратРеглОбороты.АналитикаУчетаЗатрат ЕСТЬ NULL
	               |
	               |ОБЪЕДИНИТЬ ВСЕ
	               |
	               |ВЫБРАТЬ РАЗЛИЧНЫЕ
	               |	КлючиАналитикиУчетаПартий.Ссылка
	               |ИЗ
	               |	Справочник.КлючиАналитикиУчетаПартий КАК КлючиАналитикиУчетаПартий
	               |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетЗатрат.Обороты КАК УчетЗатратОбороты
	               |		ПО КлючиАналитикиУчетаПартий.Ссылка = УчетЗатратОбороты.АналитикаУчетаПартий
	               |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетЗатратРегл.Обороты КАК УчетЗатратРеглОбороты
	               |		ПО КлючиАналитикиУчетаПартий.Ссылка = УчетЗатратРеглОбороты.АналитикаУчетаПартий
	               |ГДЕ
	               |	УчетЗатратОбороты.АналитикаУчетаПартий ЕСТЬ NULL 
	               |	И УчетЗатратРеглОбороты.АналитикаУчетаПартий ЕСТЬ NULL
	               |
	               |ОБЪЕДИНИТЬ ВСЕ
	               |
	               |ВЫБРАТЬ РАЗЛИЧНЫЕ
	               |	КлючиАналитикиУчетаПрочихЗатрат.Ссылка
	               |ИЗ
	               |	Справочник.КлючиАналитикиУчетаПрочихЗатрат КАК КлючиАналитикиУчетаПрочихЗатрат
	               |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетЗатрат КАК УчетЗатратОбороты
	               |		ПО КлючиАналитикиУчетаПрочихЗатрат.Ссылка = УчетЗатратОбороты.КорАналитикаВидаУчета
	               |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетЗатратРегл КАК УчетЗатратРеглОбороты
	               |		ПО КлючиАналитикиУчетаПрочихЗатрат.Ссылка = УчетЗатратРеглОбороты.КорАналитикаВидаУчета
	               |ГДЕ
	               |	УчетЗатратОбороты.АналитикаУчетаПартий ЕСТЬ NULL 
	               |	И УчетЗатратРеглОбороты.АналитикаУчетаПартий ЕСТЬ NULL";*/
			//Результат = Запрос.Выполнить();
			if(true/*НЕ Результат.Пустой()*/)
			{
				//МассивСсылок = Результат.Выгрузить().ВыгрузитьКолонку("Ссылка");
				//ТаблицаСсылок = НайтиПоСсылкам(МассивСсылок);
			}
			if(true/*ТребуетсяПроверкаСсылочнойЦелостности*/)
			{
				//ПроверитьСсылочнуюЦелостностьКлючейАналитики(Ложь);
			}
		}
		// Обновляет наименования ключей аналитики.
		//
		// Параметры:
		//	ТолькоТестировать - булево, если необходимо только тестировать без исправления то Истина.
		//

		public void ОбновитьНаименованияКлючейАналитики(/*ТолькоТестировать*/)
		{
			//Запрос = Новый Запрос();
			//СтруктураКлючей = ПолучитьСтруктуруКлючей();
		}
		// Проверяет ссылочную целостность ключей аналитики.
		//
		// Параметры:
		//	ТолькоТестировать - булево, если необходимо только тестировать без исправления то Истина.
		//

		public void ПроверитьСсылочнуюЦелостностьКлючейАналитики(/*ТолькоТестировать*/)
		{
			//Запрос = Новый Запрос();
			//СтруктураКлючей = ПолучитьСтруктуруКлючей();
		}
		// Удаляет записи из регистра сведений с данными ключа
		//
		// Параметры:
		//	ИмяРегистра - строка, имя регистра,
		//	МассивИзмерений - массив, содержит список измерений по которым накладывается отбор,
		//	СтруктураОтбора - структура, содержит значения отбора.
		//

		public void УдалитьЗаписьИзРегистраСОтбором(/*ИмяРегистра,МассивИзмерений, СтруктураОтбора*/)
		{
			//НаборЗаписей = РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей();
			//НаборЗаписей.Записать(Истина);
		}
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ПОЛУЧЕНИЯ НАБОРОВ ЗАПИСЕЙ РЕГИСТРОВ
		// Функция получает структуру с именами регистров.
		//
		// Возвращаемое значение:
		//	Структура - Структура имен регистров
		//

		public object ПолучитьСтруктуруИменРегистровУпр(/**/)
		{
			//Структура = Новый Структура;
			//Структура.Вставить("УчетЗатрат", "УчетЗатрат");
			//Структура.Вставить("ПродажиСебестоимость", "ПродажиСебестоимость");
			//Структура.Вставить("СтроительствоОбъектовОсновныхСредств", "СтроительствоОбъектовОсновныхСредств");
			//Структура.Вставить("ЗатратыНаСтроительствоОбъектовОсновныхСредств", "ЗатратыНаСтроительствоОбъектовОсновныхСредств");
			return null;
		}
		// ПолучитьСтруктуруИменРегистровБух()
		// Функция получает структуру с именами регистров.
		//
		// Возвращаемое значение:
		//	Структура - Структура имен регистров
		//

		public object ПолучитьСтруктуруИменРегистровРегл(/**/)
		{
			//Структура = Новый Структура;
			//Структура.Вставить("УчетЗатрат", "УчетЗатратРегл");
			//Структура.Вставить("ПродажиСебестоимость", "ПродажиСебестоимость");
			//Структура.Вставить("СтроительствоОбъектовОсновныхСредств", "СтроительствоОбъектовОсновныхСредств");
			//Структура.Вставить("ЗатратыНаСтроительствоОбъектовОсновныхСредств", "ЗатратыНаСтроительствоОбъектовОсновныхСредств");
			//Структура.Вставить("Хозрасчетный", "Хозрасчетный");
			//Структура.Вставить("Налоговый", "Налоговый");
			return null;
		}
		// ПолучитьСтруктуруИменРегистровБух()
		// Процедура получает набор записей регистра.
		//
		// Параметры:
		//  СтруктураШапкиДокумента – Структура - Реквизиты документа
		//	СтруктураИменРегистров - Структура или Неопределено - Структура имен регистров
		//
		// Возвращаемое значение:
		//  СтруктураНаборыЗаписей – Структура - Структура наборов записей регистров.
		//

		public object ПолучитьНаборыЗаписейРегистров(/*
	СтруктураШапкиДокумента,
	СтруктураИменРегистров = Неопределено
	*/)
		{
			//СтруктураНаборыЗаписей = Новый Структура;
			if(true/*СтруктураИменРегистров = Неопределено*/)
			{
				if(true/*СтруктураШапкиДокумента.ОтражатьВУправленческомУчете*/)
				{
					//СтруктураИменРегистров = ПолучитьСтруктуруИменРегистровУпр();
				}
			}
			return null;
		}
		// ПолучитьНаборыЗаписейРегистров()
		////////////////////////////////////////////////////////////////////////////////
		// Функция устанавливает значение свойства ОтладочныйРежим переданной структуры
		// Позволяет во время отладки включить формирование запросов по временным таблицам
		//
		// Параметры:
		//  СтруктураШапкиДокумента - структура, свойство которой будет изменено
		//  ОтладочныйРежим - значение свойства
		//
		// Возвращаемое значение:
		//  Всегда возвращает Истина

		public object ВключитьОтладочныйРежим(/*СтруктураШапкиДокумента, ОтладочныйРежим = Истина*/)
		{
			//СтруктураШапкиДокумента.Вставить("ОтладочныйРежим", ОтладочныйРежим);
			return null;
		}
		// Процедура формирует запрос по временной таблице.
		//
		// Параметры:
		//  СтруктураШапкиДокумента – Структура - Реквизиты документа "Расчет себестоимости"
		//	МенеджерВременныхТаблиц - МенеджерВременныхТаблиц
		//	ИмяВременнойТаблицы - Строка - Имя временной таблицы
		//

		public void ПоказатьВременнуюТаблицу(/*
	СтруктураШапкиДокумента,
	МенеджерВременныхТаблиц,
	ИмяВременнойТаблицы
	*/)
		{
			if(true/*Не СтруктураШапкиДокумента.Свойство("ОтладочныйРежим")
	 ИЛИ Не СтруктураШапкиДокумента.ОтладочныйРежим*/)
			{
			}
			/*ТекстЗапроса = "
	|ВЫБРАТЬ
	|	*
	|ИЗ
	|	ИмяВременнойТаблицы
	|";*/
			//Запрос = Новый Запрос;
			//Запрос.Текст = СтрЗаменить(ТекстЗапроса, "ИмяВременнойТаблицы", ИмяВременнойТаблицы);
			//Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
			//РезультатЗапроса = Запрос.Выполнить();
		}
		// ПоказатьВременнуюТаблицу()
		// Процедура формирует запрос по временной таблице.
		//
		// Параметры:
		//	МенеджерВременныхТаблиц - МенеджерВременныхТаблиц
		//	ИмяВременнойТаблицы - Строка - Имя временной таблицы
		//

		public object ВыгрузитьВременнуюТаблицу(/*
	МенеджерВременныхТаблиц,
	ИмяВременнойТаблицы
	*/)
		{
			/*ТекстЗапроса = "
	|ВЫБРАТЬ
	|	*
	|ИЗ
	|	ИмяВременнойТаблицы
	|";*/
			//Запрос = Новый Запрос;
			//Запрос.Текст = СтрЗаменить(ТекстЗапроса, "ИмяВременнойТаблицы", ИмяВременнойТаблицы);
			//Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
			return null;
		}
		// ВыгрузитьВременнуюТаблицу()
	}
}
